// 定义 API 返回的类型
import {api} from "@/utils/api";

interface NewsData {
    code: number;
    data: {
        details: string;
    };
    msg: string;
}

interface PDFData {
    code: number;
    data: {
        pdfUrl: string;
    };
    msg?: string;
}

/**
 * 根据新闻 ID 加载新闻详情
 * @param id 新闻 ID
 */
export async function loadNewsContentById(id: number | null): Promise<string | undefined> {
    try {
        if (id) {
            // 调用 API 获取新闻详情
            const newsData: NewsData = await api.getNewsCenterById(id);

            // 检查 API 返回的数据并提取新闻详情
            if (newsData && newsData.code === 1) {
                return newsData.data.details;
            } else {
                console.error('Failed to fetch news details:', newsData.msg || 'Unknown error');
                return undefined;
            }
        }
    } catch (error) {
        console.error('Error loading news details:', error);
        return undefined;
    }
}

/**
 * 根据PDF存储于的文章ID获取文章，再从文章中获取PDF链接
 * @param id PDF文章ID
 * @returns PDF链接，如果获取失败则返回undefined
 */
export async function loadPDFById(id: number): Promise<string | undefined> {
    try {
        // 先获取文章数据
        const articleData = await api.getNewsCenterById(id);

        // 检查 API 返回的数据并提取PDF链接
        if (articleData && articleData.code === 1 && articleData.data.pdfFileName) {
            return api.getResourceByPath(articleData.data.pdfFileName);
        } else {
            console.error('Failed to fetch PDF details:', articleData.msg || 'Unknown error');
            return undefined;
        }
    } catch (error) {
        console.error('Error loading PDF details:', error);
        return undefined;
    }
}
